////https://www.luogu.com.cn/problem/P1196
//
//#include<iostream>
//using namespace std;
//
//const int N = 3e4 + 10;
//int n = 3e4;
//int fa[N], d[N], cnt[N];
//
//int find(int x)
//{
//	if (fa[x] == x) return x;
//	int t = find(fa[x]);
//	d[x] += d[fa[x]];
//	return fa[x] = t;
//}
//
//void un(int x, int y)
//{
//	int fx = find(x), fy = find(y);
//	if (fx != fy)
//	{
//		fa[fx] = fy;
//		d[fx] = cnt[fy];
//		cnt[fy] += cnt[fx];
//	}
//}
//
//int query(int x, int y)
//{
//	int fx = find(x), fy = find(y);
//	if (fx != fy) return -1;
//	else return abs(d[y] - d[x]) - 1;
//}
//
//int main()
//{
//	int t; cin >> t;
//	for (int i = 1; i <= n; i++) 
//	{
//		fa[i] = i;
//		cnt[i] = 1;
//	}
//	while (t--)
//	{
//		char jug;
//		int i, j;
//		cin >> jug >> i >> j;
//		if (jug == 'M')
//			un(i, j);
//		else
//			cout << query(i, j) << endl;
//	}
//	return 0;
//}